-- *****************************************************************
-- CISCO-FR-MFR-MIB.my:  Cisco MFR MIB
--
-- March 2004, Qing Yu
--
-- Copyright (c) 2004 by cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************


CISCO-FR-MFR-MIB DEFINITIONS ::= BEGIN

   IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE                 FROM SNMPv2-SMI
        OBJECT-GROUP,
        MODULE-COMPLIANCE           FROM SNMPv2-CONF
        ciscoMgmt                   FROM CISCO-SMI      
        mfrBundleIndex,
        mfrBundleEntry,
        mfrBundleLinkEntry          FROM FR-MFR-MIB
        ifIndex                     FROM IF-MIB
        TruthValue                  FROM SNMPv2-TC;

ciscoFrMfrMIB MODULE-IDENTITY
        LAST-UPDATED   "200403220000Z"  
        ORGANIZATION   "Cisco Systems, Inc."
        CONTACT-INFO
                "       Cisco Systems
                        Customer Service

                Postal: 170 W Tasman Drive
                        San Jose, CA  95134
                        USA

                        Tel: +1 800 553-NETS

                E-mail: cs-wanatm@cisco.com"
        DESCRIPTION
                "The MIB module for Multilink Frame Relay (MFR). 
                 This is an extension to the FR-MFR-MIB defined 
                 in RFC 3020.
                 The MFR feature outlined in the Frame Relay Forum 
                 FRF.16 standard is a way to increase bandwidth
                 of particular applications by aggregating several
                 T1/E1 links into a single high speed Frame Relay 
                 interface.  The MFR feature groups multiple
                 physical interfaces into a logical interface 
                 called a Bundle.  Each of the physical interfaces
                 is called a Bundle Link."
        REVISION        "200403220000Z"
        DESCRIPTION
                "Initial version of this MIB module."
                 ::= { ciscoMgmt 328 }

-- The notification identifier for CISCO-FR-MFR-MIB objects

ciscoFrMfrMIBNotifications OBJECT IDENTIFIER 
                                      ::= { ciscoFrMfrMIBObjects 0 }

-- The object identifier subtree for the CISCO-MFR-MIB

ciscoFrMfrMIBObjects OBJECT IDENTIFIER ::= { ciscoFrMfrMIB 1 }
ciscoFrMfrBundle OBJECT IDENTIFIER ::= { ciscoFrMfrMIBObjects 1 }
ciscoFrMfrBundleLink OBJECT IDENTIFIER
                                      ::= { ciscoFrMfrMIBObjects 2 }
ciscoFrMfrBundleMap OBJECT IDENTIFIER ::= { ciscoFrMfrMIBObjects 3 }

-- Cisco MFR Bundle table, extension to the mfrBundleTable

cfrMfrBundleTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CfrMfrBundleEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
      "This table contains extension objects for the mfrBundleTable. 
       This table contains alarm information for each Bundle.
       This table also contains restart MFR bundle object, which 
       provides a simple way to establish bundle links with a new 
       far end bundle."
       ::= { ciscoFrMfrBundle 1 }

cfrMfrBundleEntry OBJECT-TYPE
    SYNTAX      CfrMfrBundleEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
      "An entry in cfrMfrBundleTable. Each entry contains 
       bundle alarm information."
    AUGMENTS { mfrBundleEntry }
       ::= { cfrMfrBundleTable 1 }

CfrMfrBundleEntry ::=
    SEQUENCE { cfrMfrBundleAlarmState  BITS,
               cfrMfrBundleRestart     TruthValue
             }

cfrMfrBundleAlarmState OBJECT-TYPE
    SYNTAX      BITS {
                      mfrBundleOtherError(0),
                      mfrBundleInsuffLinksNe(1),
                      mfrBundleInsuffLinksFe(2)
                     }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
      "This object is a bitmap of the MFR Bundle alarms.
       A value of zero indicates no alarms.
       Itemized below are the individual bits:
           BitPosition        Alarm
           ===========        =====
                0              Other Unknown Errors.
                1              Insufficient Links at the Near End.
                2              Insufficient Links at the Far End."
       ::= { cfrMfrBundleEntry 1 }  

cfrMfrBundleRestart OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
      "This object controls if the MFR bundle restart is to be 
       executed. During this operation, the agent will down the 
       bundle Admin state (mfrBundleRowStatus), then, clear the 
       stored far end bundle identification (mfrBundleFarEndName), 
       finally, up the bundle Admin state again. This procedure 
       will trigger each bundle link within the bundle to go 
       through the link state (MfrBundleLinkState) transitions 
       before it is declared Active (mfrBundleLinkUp). This is 
       useful, especially, when the far end bundle has been 
       changed. It provides a simple way to establish all bundle 
       links without deleting and re-adding them.           

           true(1)  - restarting the MFR bundle
           false(2) - do not restart the MFR bundle

       The agent restarts a MFR bundle if it is set the value to 
       true(1) request from a manager. When the agent is in the 
       bundle restart process, it does not take any set to value 
       of true(1) requests. The agent returns true(1) when it is 
       in the restart process and returns false(2) after the 
       completion of bundle restarting. The agent will not take 
       any actions if it is set the value to false(2) request from 
       a manager. Since the return value (true or false) does not 
       give any indication of the result of the operation, a manager 
       needs to query the bundle and the link(s) state (such as 
       ifOperStatus and MfrBundleLinkState) to know the result of 
       the restarting."
    DEFVAL { false }
       ::= { cfrMfrBundleEntry 2 }      

--
-- The Cisco FR MFR Bundle Link Table extension to the 
-- mfrBundleLinkTable
--

cfrMfrBundleLinkTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CfrMfrBundleLinkEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
      "The Cisco MFR Bundle link table is an extension to the 
       mfrBundleLinkTable. This table contains the alarm
       information of each bundle link."
       ::= { ciscoFrMfrBundleLink 1 }

cfrMfrBundleLinkEntry OBJECT-TYPE
    SYNTAX      CfrMfrBundleLinkEntry 
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
      "An entry in the table, contains the alarm state of a MFR 
       bundle link." 
    AUGMENTS { mfrBundleLinkEntry }
       ::= { cfrMfrBundleLinkTable 1 }

CfrMfrBundleLinkEntry ::=
    SEQUENCE { cfrMfrBundleLinkAlarmState BITS }

cfrMfrBundleLinkAlarmState OBJECT-TYPE
    SYNTAX     BITS {
                     mfrBundleLinkOtherAlarm(0),
                     mfrBundleLinkUnknownVendor(1),
                     mfrBundleLinkLinkIdle(2),
                     mfrBundleLinkLinkDown(3),
                     mfrBundleLinkLinkDiffDelayExceed(4),
                     mfrBundleLinkLinkLoopDetected(5),
                     mfrBundleLinkLinkUnexpectAdd(6),
                     mfrBundleLinkLinkMisMatchBundleNe(7),
                     mfrBundleLinkLinkMisMatchBundleFe(8)
                    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
      "This object is a bitmap of the Cisco MFR bundle Link alarms.
       A value of zero indicates no alarms.
       Itemized below are the individual bits:
            BitPosition        Alarm
            ===========        =====
                0              Other Unknown Errors.
                1              Unknown Vendor
                2              Idle
                3              Down
                4              Differential Delay Exceeded
                5              Loopback Detected
                6              Unexpected Add Link
                7              Near End Bundle MisMatch
                8              Far End Bundle MisMatch"
     REFERENCE
       "Frame Relay Forum MFR FRF.16.1, Section 4.3.9 on page 27"
        ::= { cfrMfrBundleLinkEntry 1 }

--
-- The Cisco MFR Link Mapping Table
--

cfrMfrBundleLinkMappingTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CfrMfrBundleLinkMappingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
      "The link mapping table is an MFR bundle oriented mapping 
       table which associates an MFR bundle to its corresponding 
       bundle links. It provides an efficient way of accessing to 
       bundle links based on the knowledge of an MFR bundle.

       This is a read-only mapping table. The agent creates an 
       entry when an bundle link identified by 'ifIndex' is added to
       an MFR bundle identified by 'mfrBundleIndex'. The agent 
       removes an entry when an bundle link identified by 'ifIndex' 
       is removed from an MFR bundle identified by 'mfrBundleIndex'. 
       A state object 'cfrMfrBundleLinkState' provides the link 
       state in either 'active' or 'inactive'. The management 
       station can query detailed information in mfrBundleTable, 
       and mfrBundleLinkTable with the two indices readily 
       available."
       ::= { ciscoFrMfrBundleMap 1 }

cfrMfrBundleLinkMappingEntry OBJECT-TYPE
    SYNTAX      CfrMfrBundleLinkMappingEntry 
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
      "An entry in the table containing the mapping from
       'mfrBundleIndex' to the 'ifIndex' of the MFR links
       added to the bundle. "
    INDEX { mfrBundleIndex, ifIndex }
       ::= { cfrMfrBundleLinkMappingTable 1 }

CfrMfrBundleLinkMappingEntry ::= SEQUENCE {
             cfrMfrBundleLinkState  INTEGER
             }

cfrMfrBundleLinkState OBJECT-TYPE
    SYNTAX INTEGER {
                   active(1),
                   inactive(2)
                   }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
      "This object indicates whether the bundle link is in active(1)
       state or inactive(2) state.  When the state is active the
       corresponding link state is up and when the state is inactive 
       the link state is down."
       ::= { cfrMfrBundleLinkMappingEntry 1 }

-- Conformance Information
ciscoFrMfrMIBConformance
                OBJECT IDENTIFIER ::= { ciscoFrMfrMIB 2 }
ciscoFrMfrMIBCompliances
                OBJECT IDENTIFIER ::= { ciscoFrMfrMIBConformance 1 }
ciscoFrMfrMIBGroups
                OBJECT IDENTIFIER ::= { ciscoFrMfrMIBConformance 2 }

-- Mandatory Part 

ciscoFrMfrMIBCompliance MODULE-COMPLIANCE
        STATUS      current
        DESCRIPTION
           "The Compliance statement for Cisco MFR Bundle and bundle 
            link management."
        MODULE -- this module
        MANDATORY-GROUPS { 
                    ciscoFrMfrBundleGroup, 
                    ciscoFrMfrBundleLinkGroup 
                    }
        GROUP ciscoFrMfrBundleLinkMappingGroup
                DESCRIPTION
                    " Implementation of this group is not mandatory. If implemented
                      it helps in acheiving quick mapping from the bundle to the  
                      bundle links. "
              ::= { ciscoFrMfrMIBCompliances 1 }

-- Compliance Part

-- Units of Conformance

ciscoFrMfrBundleGroup OBJECT-GROUP
      OBJECTS    { cfrMfrBundleAlarmState,
                   cfrMfrBundleRestart 
                 }
      STATUS      current
      DESCRIPTION
        "A set of objects providing alarm information and restart 
         configuration for a Cisco MFR Bundle extension group 
         definition."
         ::= { ciscoFrMfrMIBGroups 1 }

ciscoFrMfrBundleLinkGroup OBJECT-GROUP
      OBJECTS    { cfrMfrBundleLinkAlarmState }
      STATUS      current
      DESCRIPTION
        "A set of objects providing alarm information for a Cisco
         MFR Bundle Link extension group definition."
         ::= { ciscoFrMfrMIBGroups 2 }

ciscoFrMfrBundleLinkMappingGroup OBJECT-GROUP
      OBJECTS    { cfrMfrBundleLinkState }
      STATUS      current
      DESCRIPTION
        "A set of objects providing MFR bundle to MFR bundle link 
         lookup and MFR bundle link state."
         ::= { ciscoFrMfrMIBGroups 3 }

END